Components included in an application XML file
To understand about the component included in an application XML file, you must first understand about the types of objects in an application.
An application consists of core and dependent objects. When you create a new object for an application, by default it becomes a core object. Core objects are published and installed with the applications. Dependent objects are pre-requisites to application installation. So, dependent objects must be installed in a tenant before the application depending on them is installed. Object relationships and conversion maps are only published with an application if both the source and destination objects are included in that application, either as core or dependent objects.
You can explicitly assign dependent objects to an application. Platform automatically adds dependent objects to maintain application integrity in the following cases:
- If a Role is given application permissions, the permissions assigned to that role are published as part of the application XML. This is because the User object is a dependent object for all applications.
- If any core objects have the Approval attribute, the Approval object will be added as a dependent object.
- If any core objects have the Contact attribute, the Communication Log object will be added as a dependent object.
- If certain objects are not included as core objects but they are related to the objects included on the application menu, then those objects will be added as dependent objects.
The application view lists objects assigned explicitly and those included implicitly through tabs. Explicitly assigned objects have a Remove action link. Implicitly assigned objects can be removed only after removing the corresponding tab. For example, if there is an application that has Accounts and Contacts tabs, and the two tabs are related and the application only explicitly assigns an Account detail object. When this application is published, it will include the following objects: Account, Contact and Account Detail (without a tab).
The following table summarizes the conditions under which components are included in the Platform application XML file:
| Component | Included during publication if: |
|---|---|
| Object definitions | Object belongs to the package |
| Fields | Owning object belongs to the package |
| Views | Owning object belongs to the package |
| Pages | Owning object belongs to the package |
| Templates | Owning object belongs to the package |
| Menus and submenus | Owning object (if any) belongs to the package |
| Relationship definitions | Objects on both sides of the relationship belong to the package |
| Import maps | Owning object belongs to the package |
| Conversion maps | Objects on both sides of the conversion belong to the package |
| List | View object belongs to the package |
| Report | Owning object belongs to the package |
| Chart | Objects used in X and Y axes belong to the package |
| Gauge | Owning object belongs to the package |
| Related list | Parent object belongs to the package |
| Report links | Report belongs to an object in the package |
| Lookup fields | Lookup object belongs to the package |
| Related fields | Related object belongs to the package |
| User roles | Assigned to the application |
| Portal | Assigned to the application |
| Hosted files | Assigned to the application |
| Batch jobs | Assigned to the application |
| Progress Data Catalogs | Assigned to the application |
| Workflow processes, actions, and statuses | Owning object belongs to the package |
| Triggers | Owning object belongs to the package |
| Survey questions | Owning object belongs to the package |
| Seed records | Assigned to the application |
| Authentication Profile | Assigned to the application |